#coding: utf-8
import os
import base64
import md5

#============检查mkey和ukey文件是否存在，不存在就创建===================
def checkfile(filedir,filename):
	if os.access(filedir, os.F_OK):
		return True
	else:
		createfile=open(filename,'w+')
		createfile.close()
		return False

#=================查询指定文件的关键字返回True或者False================
def fileread(finename,keystr):
  	foundflag=False
	result=[]
	FileObj=open(finename)	#FileObj=open("stats.file")
	linetemp=FileObj.readline()
	while linetemp:
		if linetemp.find(keystr)==0:	#if linetemp.find('mac:')==0:
			foundflag=True
			#print linetemp
			if keystr=='mac:':
				filea.write(linetemp[4:])
				result=linetemp[4:-1]
			elif keystr=='drive_name:':
				filea.write(linetemp[-25:])
				result=linetemp[-25:-1]
			else:
				filea.write(linetemp[12:])
				result=linetemp[12:-1]
			break
		else:
			linetemp=FileObj.readline()
	FileObj.close()
	if foundflag==False:
		result="error"
	#print result
	return result

#===============判断读取文件key里面文件内容与计算相同==================
def checkkey(finename,keystr):
  	foundflag=False
	
	FileObj=open(finename)	#FileObj=open("mkey")
	linetemp=FileObj.readline()
	while linetemp:
		if linetemp.find(keystr)==0:	#if linetemp.find(mac_md5.hexdigest())==0:
			foundflag=True
			#print linetemp
			break
		else:
			linetemp=FileObj.readline()
	FileObj.close()

	return foundflag
#============================主函数===========================
#先判断文件
checkfile('/home/ethos/mkey','mkey')	#/home/ethos/mkey
checkfile('/home/ethos/ukey','ukey')
checkfile('/home/ethos/licence','licence')
#配合两个读的状态进行操作
filea=open('/home/ethos/licence','w')
#下边是base64编码加密部分
mac_data=fileread('/run/ethos/stats.file','mac:')
usb_data=fileread('/run/ethos/stats.file','drive_name:')
mac=base64.b32encode(mac_data + mac_data[1:2])
usb=base64.b64encode(usb_data + usb_data[1:3])
filea.close()

#md5加密部分+自动写入部分
filea=open('/home/ethos/mkey','w')
mac_md5 = md5.new()
mac_md5.update(mac.encode(encoding='utf-8'))
#print(mac_md5.hexdigest())
filea.write(mac_md5.hexdigest())
filea.close()

filea=open('/home/ethos/ukey','w')
usb_md5 = md5.new()
usb_md5.update(usb.encode(encoding='utf-8'))
#print (usb_md5.hexdigest())
filea.write(usb_md5.hexdigest())
filea.close()

#print checkkey('mkey',mac_md5.hexdigest())
if checkkey('/home/ethos/mkey',mac_md5.hexdigest())==False:
	print 'disallow miner'
	#os.system("/opt/ethos/bin/disallow")
#print checkkey('ukey',usb_md5.hexdigest())	
if	checkkey('/home/ethos/ukey',usb_md5.hexdigest())==False:
	print 'reboot every 5 min'
	#os.system("/sbin/reboot")
	